package ar.unq.edu.persistencia.persistencia;

import java.util.List;

import ar.edu.unq.persistencia.apuesta.Apuesta;
import ar.edu.unq.persistencia.apuesta.Columna;
import ar.edu.unq.persistencia.apuesta.Fila;
import ar.edu.unq.persistencia.apuesta.Impar;
import ar.edu.unq.persistencia.apuesta.Par;
import ar.edu.unq.persistencia.apuesta.Pleno;
import ar.edu.unq.persistencia.jugador.Jugador;
import ar.edu.unq.persistencia.jugador.Persona;

/**
 * Genera los datos, que luego seran guardados en la bd
 */

public class DataGenerator {
    private static DataGenerator inst = new DataGenerator();

    private List<Apuesta> apuestas;

    private List<Jugador> jugadores;

    // *******************//
    // ** Constructores **//
    // *******************//
    private DataGenerator() {
        this.generarApuestas();
        this.generarJugadores();
    }

    // *************************//
    // ** Getters and Setters **//
    // *************************//
    public static DataGenerator getInstance() {
        return inst;
    }

    public List<Jugador> getJugadores() {
        return this.jugadores;
    }

    public List<Apuesta> getApuestas() {
        return this.apuestas;
    }

    // *************//
    // ** Metodos **//
    // *************//
    public List<Jugador> generarJugadores() {
        this.jugadores.add(new Jugador(new Persona("Nacho", 1000)));
        this.jugadores.add(new Jugador(new Persona("Mateo", 3553)));
        this.jugadores.add(new Jugador(new Persona("Nestor", 234)));
        this.jugadores.add(new Jugador(new Persona("Naty", 745)));
        return this.jugadores;
    }

    public List<Apuesta> generarApuestas() {
        this.apuestas.add(new Apuesta(this.jugadores.get(0), new Par(), 0, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(2), new Impar(), 0, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(1), new Columna(), 1, 110));
        this.apuestas.add(new Apuesta(this.jugadores.get(1), new Pleno(), 0, 200));
        this.apuestas.add(new Apuesta(this.jugadores.get(3), new Fila(), 5, 44));
        this.apuestas.add(new Apuesta(this.jugadores.get(3), new Par(), 0, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(2), new Columna(), 2, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(1), new Impar(), 0, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(0), new Pleno(), 32, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(0), new Pleno(), 4, 100));
        this.apuestas.add(new Apuesta(this.jugadores.get(2), new Par(), 0, 100));
        return this.apuestas;
    }

}
